<!DOCTYPE>
<html xmlns="https://www.thymeleaf.org/">
<head>
<meta charset="UTF-8">
<title>SpringDataJPA-sample</title>
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>

<div class="container">
   <div class="row">
      <div class="col-md-12">
      	<table class="table">
      		<thead>
      			<tr><th colspan="12">
      				<h2>SpringBoot+JPA+LayUI项目开发--典型范例</h2>
      				<h5>代码地址：<a href="https://gitee.com/davidgyg/SpringDataJPA-sample" target="_blank">https://gitee.com/davidgyg/SpringDataJPA-sample</a></h5>
      				<h5>测接口及前端调试，建议用<a href="http://firefox.com.cn" target="_blank">火狐浏览器</a>及RESTer插件</h5>
      				<h5>Designd By：沙加 <a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=174217801&site=qq&menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=2:174217801:51" alt="点击这里给我发消息" title="点击这里给我发消息"/></a></h5>
      			</th></tr>
      		</thead>
			<tr>
				<td width="50">序号</td>
				<td width="50">类型</td>
				<td>名称/url</td>
				<td>知识点<td>
				<td>备注</td>
			</tr>
			<tr>
				<td>1</td><td>接口</td><td><a href="admin/user/list" target="_blank">用户列表 user/list</a></td><td><td><td></td>
			</tr>
			<tr>
				<td>2</td><td>接口</td><td><a href="admin/course/2000" target="_blank">查询单个课程 course/2000</a></td>
				<td>JPA一对多、多对多关联查询<td>
				<td>
				【课程1 vs 章节n vs 课件n】<br/>
				本身是查一个课程，但是因为课程和章节做了一对多，所以对应的章节也会被查出来。而章节和课件也做了多对多关联，所以对应的课件也会被查出来
				<td>
			</tr>
			<!-- <tr>
				<td>3</td><td>页面</td><td><a href="admin/news/list" target="_blank">完整CRUD+动态搜索 news/list</a></td><td>LayUI table组件、JPA动态查询<td><td>基于本例，你可掌握完整的前后端交互流程</td>
			</tr> -->
			<tr>
				<td>3</td><td>接口</td><td><a href="admin/course/search" target="_blank">动态查询课程 course/search</a></td><td>JpaSpecificationExecutor、JPA动态查询<td><td>JpaSpecificationExecutor接口实现单表动态查询</td>
			</tr>
			<tr>
				<td>4</td><td>接口</td><td><a href="admin/course/search?courseName=Java&teacherId=100&onstate=1" target="_blank">动态查询课程 course/search?courseName=Java&teacherId=100&onstate=1</a></td><td></td><td></td><td>该接口有符合条件的记录</td>
			</tr>
			<tr>
				<td>5</td><td>接口</td><td><a href="admin/course_section/search?course=2000&chapter=redis" target="_blank">根据课程ID和章节名查询章节 course_section/search?course=2000&chapter=redis</a></td><td>JAP多表连接查询、多表join查询<td><td>该接口有符合条件的记录</td>
			</tr>
			<tr>
				<td>6</td><td>接口</td><td><a href="admin/course_section/batchDelete?id=200&id=201" target="_blank">批量软删除 course_section/batchDelete?id=200&id=201</a></td><td>in子句<td><td>该接口会给两个章节设为status=-1已删除</td>
			</tr>
			<tr>
				<td>7</td><td>接口</td><td><a href="admin/examexams/1" target="_blank">查某场考试的所有学员编号和分数 examexams/1</a></td><td>JPA多表查询、N+1性能问题<td><td>典型的多对多问题改为两个一对多来解决</td>
			</tr>
		</table>
      </div>      
   </div>
</div>

<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>

</body>
</html>